package com.hsy.crm.web.mapper;

import com.hsy.crm.web.config.CrmMapper;
import com.hsy.crm.web.domain.entity.Product;
import com.hsy.crm.web.domain.po.product.ProductExportPo;
import com.hsy.crm.web.domain.po.product.ProductPagePo;
import com.hsy.crm.web.domain.po.product.ProductPo;
import com.hsy.crm.web.domain.po.unit.ProductUnitPo;
import com.hsy.crm.web.domain.vo.product.ProductPageVo;
import com.hsy.crm.web.domain.vo.report.ExcelVo;

import java.util.List;

public interface ProductMapper extends CrmMapper<Product> {

    List<ProductPagePo> page(ProductPageVo productPageVo);

    List<Product> choose(ProductPageVo productPageVo);

    List<Product> choseCache(ProductPageVo productPageVo);

    List<Product> chooseByProductType(ProductPageVo productPageVo);

    List<ProductPagePo> chose(ProductPageVo productPageVo);

    List<ProductUnitPo> getMultiUnits(Product product);

    ProductPo getProduct(Product product);

    List<Long> getProductIds(String customerId);

    Long checkOrderDetail(Product product);

    Long checkCode(Product product);

    Long checkBarcode(Product product);

    List<ProductExportPo> findProductData(ExcelVo excelVo);

    void updateLastPurchasePrice(Product product);

    void updateLastSalePrice(Product product);

}
